Recently, the functions of information processing devices so-called embedded devices such as home information appliances and cellular phones are increasing at an accelerated pace. Causes of such accelerated increase of functions are the upgrading of user demands, competitions among manufacturers, and compatibility with the network. In order to respond to such increase of functions, the softwares being installed in embedded devices have become complex, along with which the management of resources used for the operation of such software has also become complex.
For example, in embedded devices realizing the overall functions of the device by combining a plurality of software modules for realizing the respective functions (hereinafter called modules), the modules scramble for resources, causing exhaustion of resources, which may lead to failures such as shutdown. It maybe possible to prevent such resource failures through careful development operations, but such development requires much time and causes increase of costs, which becomes a serious problem.
Further, the progress in the network connection of embedded devices has increased systems that enable the embedded devices to receive modules and execute the received modules. For example, an OSGi (registered trademark) which is a platform technology aimed at enabling functions of various deices to be altered easily through transmission and reception of software components via the network has determined standards for transmitting modules to home gateways installed in respective homes. Generally, there are a large variety of modules transmitted via such systems, and the amounts of use of resources via these modules are also varied. Therefore, the distribution and execution of modules using large amounts of resources may cause the exhaustion of resources of the respective embedded devices.
In order to cope with such problems mentioned above, there are many known methods for monitoring and controlling the used amount of resources per module. One such typical method sets up a limit value of the amount of resources used per module, and forbids the use of resources exceeding a certain amount. For example, patent document 1 teaches a resource management system that limits the amount of resources to be used by the whole system and modules, in order to prevent failures such as shutdown caused by exhaustion of resources.
Further, non-patent document 1 teaches a method for restricting the amount of memory used by each module by dividing the memory regions and relating the divided regions with the modules. In further detail, the document illustrates a method for providing a divided region dedicated to a shared memory, and limiting the amount of shared memory.